MYBATIS | 您所在的位置:网站首页 › mybatis page分页查询效率 › MYBATIS |
MYBATIS-PLUS实现只查询指定列数据以及如何联表查询
原创
蓉185 2023-05-22 10:33:11 博主文章分类:Java ©著作权 文章标签 MYBATIS-PLUS 联表查询 文章分类 Java 后端开发 yyds干货盘点 ©著作权归作者所有:来自51CTO博客作者蓉185的原创作品,请联系作者获取转载授权,否则将追究法律责任一、MYBATIS-PLUS大多都是针对列全部查询,但是如果我们只需要几个字段怎么办呢? 解决方案: 1:在QUERYWRAPPER中过滤字段(个人认为这种适合处理简单的操作) 2:中规中矩的使用MAPPER.XML来处理,这么做还可以解决MP不能联表查询的问题 3:不太建议的解决方案 太繁琐,要分类建实体 一个字 麻烦 (以下这3点) 1、声明该字段是 transient 的2、声明该字段是 static 的3、通过注解声明该字段不是一个数据库表里面的字段1、以下是第一种解决方案 1. /** 2. * 名字包含雨并且年龄小于40 3. 4. * 只显示id、name 两列 5. */ 6. @Test 7. public void selectByWrapper1() { 8. wrapper = new QueryWrapper(); 9. wrapper.like("name", "雨").lt("age", 40) 10. .select("id","name"); 11. users = userMapper.selectList(wrapper); 12. users.forEach(System.out::println); 13. } 14. 15. /** 16. * 名字包含雨并且年龄小于40 17. 18. * 除了create_time、manager_id 其他列都显示 19. */ 20. @Test 21. public void selectByWrapper2() { 22. wrapper = new QueryWrapper(); 23. wrapper.like("name", "雨").lt("age", 40) 24. .select(User.class,i -> !i.getColumn().equals("create_time") 25. && !i.getColumn().equals("manager_id")); 26. users = userMapper.selectList(wrapper); 27. users.forEach(System.out::println); 28. }解决方案二、 通过xml配置,也就是相当于用mybatis MYBATIPLUS文档 官方文档里面也做介绍,版本需要大于3.0.7 官方链接:使用 Wrapper 自定义SQL赞 收藏 评论 分享 举报 上一篇:设置Tomcat生成的日志文件编码格式为UTF-8 下一篇:正则表达式-匹配中英文、字母和数字 |
CopyRight 2018-2019 实验室设备网 版权所有 |